#!/usr/bin/perl
#
# Titulo: cadastrarPeca.pl
#
# Autor:
#
# Descricao:
#

BEGIN { use CGI::Carp "fatalsToBrowser"; }
use CGI qw(param);
use CGI;
use AccessDB;
use Fachada;

#Lista de opções para as origens das pecas
@Pecasorigem = ("");
open(FILE, "<listas/Pecasorigem.txt");
while(<FILE>){
	push(@Pecasorigem, $_);
}
close(FILE);

my $acao = param('acao');

#Atributos de peca (comuns a todas as pecas)
my $formtipopeca = param('tipopeca');
my $formcodigobarras = param('codigobarras');
my $formfabricante = param('fabricante');
my $formtestado = param('testado');
my $formorigem = param('origem');

#Atributos de peca (comuns a mais de uma peca)
my $formtipo = param('tipo'); #tipo de hd, tipo de processador, etc.
my $formtamanho = param('tamanho'); #capacidade do hd, ou mem ram
my $formsocket = param('socket'); #socket da p. mae ou do processador
my $formvelocidade = param('velocidade'); #velocidade do driver optico ou processador

#Atributos exclusivos de Fonte
my $formpotencia = param('potencia');
my $formconector = param('conector');
my $formqtdpinos = param('qtdpinos');

#Atributos exclusivos de PlacaMae
my $formmodelo = param('modelo');
my $formqtdslotsmemoria = param('qtdslotsmemoria');
my $formsomonboard = param('somonboard');
my $formportausb = param('portausb');
my $forminterfscsi = param('interfscsi');
my $forminterfsata = param('interfsata');
my $forminterfide = param('interfide');
my $formbaragp = param('baragp');
my $formbarisa = param('barisa');
my $formbarpci = param('barpci');

#Atributos exclusivos de PlacaVideo
my $formmemoria = param('memoria');
my $formprocessador = param('processador');
my $formacel3d = param('acel3d');

#Atributos exclusivos de PlacaRede
my $formmodelo = param('modelo');
my $formtaxatransmissao = param('taxatransmissao');

$cgi=new CGI();
$cookie=$cgi->cookie('login');
if(!$cookie){
	Fachada->printHeader;
	Fachada->printMenu;
	print "<h1>Falha na autentica&ccedil;&atilde;o/leitura de cookies. Favor realizar login novamente.</h1>";
	Fachada->printFooter;
	exit;
}
$bd = AccessDB->new();
$bd->ConnectDB();
$query = "SELECT NivelPermissao FROM Usuario where login = '$cookie'";
$query_handle = $bd->query($query);
$query_handle->bind_columns(undef, \$nivel);
$query_handle->fetch();

if(!$nivel){
	Fachada->printHeader;
	Fachada->printMenu;
	print "<h1>Usu&aacute;rio nao encontrado. Falha na autentica&ccedil;&atilde;o do cookie.</h1>";
	Fachada->printFooter;
	exit;
}elsif($nivel != 2 && $nivel != 3 && $nivel != 4){
	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print "<h1>Voc&ecirc; n&atilde;o tem permiss&atilde;o para acessar esta p&aacute;gina.</h1>";
	Fachada->printFooter;
	exit;
}elsif($nivel == 2 || $nivel == 3 || $nivel == 4) {

	if($formcodigobarras){
		$query = "SELECT CodigoBarras FROM Pecas where CodigoBarras = '$formcodigobarras'";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$resultado);
		$query_handle->fetch();		
		if(defined($resultado)){
			Fachada->printHeader;
			Fachada->printMenu($nivel);
			print "<h2>Erro. Pe&ccedil;a j&aacute; existente.</h2>";
			Fachada->printFooter;
			exit;											
		}
		$formtipopeca = substr($formcodigobarras,0,2);
	}

	if(!$formcodigobarras and !defined($acao)){
		&printformCodigoBarras;
	}elsif($formtipopeca eq "HD" and !defined($acao)){
		&printformHD($formcodigobarras);		
	}elsif($formtipopeca eq "DQ" and !defined($acao)){
		&printformDisquete($formcodigobarras);
	}elsif($formtipopeca eq "DO" and !defined($acao)){
		&printformDriverOptico($formcodigobarras);
	}elsif($formtipopeca eq "FT" and !defined($acao)){
		&printformFonte($formcodigobarras);
	}elsif($formtipopeca eq "PM" and !defined($acao)){
		&printformPlacaMae($formcodigobarras);
	}elsif($formtipopeca eq "PV" and !defined($acao)){
		&printformPlacaVideo($formcodigobarras);
	}elsif($formtipopeca eq "PC" and !defined($acao)){
		&printformProcessador($formcodigobarras);
	}elsif($formtipopeca eq "MM" and !defined($acao)){
		&printformMemoria($formcodigobarras);
	}elsif($formtipopeca eq "PR" and !defined($acao)){
		&printformPlacaRede($formcodigobarras);
	}

	if($acao eq "HDinsert"){
		&insertHD($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formtamanho, $formtipo);
	}elsif($acao eq "Disqueteinsert"){
		&insertDisquete($formcodigobarras, $formtestado, $formfabricante, $formorigem);
	}elsif($acao eq "DriverOpticoinsert"){
		&insertDriverOptico($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formvelocidade, $formtipo);
	}elsif($acao eq "Fonteinsert"){
		&insertFonte($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formpotencia, $formtipo, $formconector, $formqtdpinos);
	}elsif($acao eq "PlacaMaeinsert"){
		&insertPlacaMae($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formmodelo, $formsocket, $formqtdslotsmemoria, 				$formsomonboard, $formportausb, $forminterfscsi, $forminterfsata, $forminterfide, $formbaragp, $formbarisa, $formbarpci);
	}elsif($acao eq "PlacaVideoinsert"){
		&insertPlacaVideo($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formmemoria, $formprocessador, $formacel3d);
	}elsif($acao eq "Processadorinsert"){
		&insertProcessador($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formtipo, $formvelocidade, $formsocket);
	}elsif($acao eq "Memoriainsert"){
		&insertMemoria($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formtipo, $formtamanho);
	}elsif($acao eq "PlacaRedeinsert"){
		&insertPlacaRede($formcodigobarras, $formtestado, $formfabricante, $formorigem, $formmodelo, $formtaxatransmissao);
	}
}

sub printformCodigoBarras {

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formpeca.codigobarras.value==""){
		alert("Erro! O campo esta em branco!");
		formpeca.codigobarras.focus();
		return false;
	}if(!formpeca.codigobarras.value.match(/^((HD)|(DQ)|(DO)|(FT)|(PM)|(PV)|(PC)|(MM)|(PR))[0-9]{8}\$/)){
		alert("Erro! O valor inserido nao e' um codigo de barras valido!");
		formpeca.codigobarras.focus();
		return false;
    	}

	formpeca.submit();
	}    

	</script>

	<form name="formpeca" action="cadastrarPeca.pl" method="post">

	<h2>Cadastro de Pe&ccedil;as</h2>
	
	&nbsp;&nbsp;Insira o c&oacute;digo de barras da pe&ccedil;a a ser cadastrada:<br /><br />&nbsp;&nbsp;
	<input type="text" name="codigobarras" maxlength="10" />
	<input type="button" value="OK" onClick="verifica();" />

	</form>
	);

	Fachada->printFooter;

}

sub printformHD{
	
	my @HDfabricantes = ("");
	open(FILE, "<listas/HDfabricantes.txt");
	while(<FILE>){
		push(@HDfabricantes, $_);
	}
	close(FILE);

	my @HDtipos = ("");
	open(FILE, "<listas/HDtipos.txt");
	while(<FILE>){
		push(@HDtipos, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formHD.codigobarras.value==""){
		alert("Erro! O Campo \\"Codigo de Barras\\" esta em branco!");
		formHD.codigobarras.focus();
		return false;
	}else if(formHD.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formHD.testado.focus();
		return false;
	}else if(formHD.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formHD.fabricante.focus();
		return false;
	}else if(formHD.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formHD.origem.focus();
		return false;
	}else if(formHD.tipo.value==""){
		alert("Erro! O Campo \\"Tipo\\" esta em branco!");
		formHD.tipo.focus();
		return false;
	}

	formHD.submit();
	}    

	</script>

	<form name="formHD" action="cadastrarPeca.pl" method="post">

	<h2>Cadastro de Pe&ccedil;as - Hard Disk</h2>
	<input type="hidden" name="codigobarras" value="$_[0]" />
	<input type="hidden" name="acao" value="HDinsert">
	&nbsp;&nbsp;Fabricante:&nbsp;
	<select name="fabricante">
	);
	for(@HDfabricantes){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Tamanho:&nbsp;
	<input type="text" name="tamanho" maxlength="9" size="10"/>&nbsp;GBytes<br /><br />
	&nbsp;&nbsp;Tipo:&nbsp;
	<select name="tipo">
	);
	for(@HDtipos){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />
	&nbsp;&nbsp;Testado:&nbsp;
	<select name="testado">
		<option value=""></option>
		<option value="0">N&atilde;o</option>
		<option value="1">Sim</option>
	</select><br /><br />
	&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
	<select name="origem">);
	for(@Pecasorigem){
		print qq(<option value="$_">$_</option>);
	}
	print qq(</select><br /><br />&nbsp;

	<input type="button" value="Salvar" onclick="verifica();">&nbsp;&nbsp;
	<input type="button" value="Cancelar" onClick="window.location.href='cadastrarPeca.pl'"/>

	</form>
	);
	Fachada->printFooter;
}

sub printformDisquete{

	my @Disquetefabricantes = ("");
	open(FILE, "<listas/Disquetefabricantes.txt");
	while(<FILE>){
		push(@Disquetefabricantes, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<body>
	<script language="JavaScript">
	function verifica() {

	if(formDisquete.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formDisquete.fabricante.focus();
		return false;
	}else if(formDisquete.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formDisquete.testado.focus();
		return false;
	}else if(formDisquete.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formDisquete.origem.focus();
		return false;
	}

	formDisquete.submit();
	}    

	</script>

	<form name="formDisquete" action="cadastrarPeca.pl" method="post">
		<input type="hidden" name="codigobarras" value="$_[0]">
		<input type="hidden" name="acao" value="Disqueteinsert">
	
		<h2>Cadastro de Pe&ccedil;as - Drive de Disquete</h2>
	
		&nbsp;&nbsp;Fabricante:&nbsp;
		<select name="fabricante">
		);
		for(@Disquetefabricantes){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />
		&nbsp;&nbsp;Testado:&nbsp;
		<select name="testado" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
		</select><br /><br />
		&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:
		<select name="origem">);
		for(@Pecasorigem){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />&nbsp;

		<input type="button" value="Salvar" onClick="verifica();" />
		<input type="button" value="Voltar" onclick="window.location.href='cadastrarPeca.pl'">	
	</form>
	);
	
	Fachada->printFooter;

}

sub printformDriverOptico{

	my @DriverOpticofabricantes = ("");
	open(FILE, "<listas/DriverOpticofabricantes.txt");
	while(<FILE>){
		push(@DriverOpticofabricantes, $_);
	}
	close(FILE);

	my @DriverOpticotipos = ("");
	open(FILE, "<listas/DriverOpticotipos.txt");
	while(<FILE>){
		push(@DriverOpticotipos, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formDriverOptico.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formDriverOptico.fabricante.focus();
		return false;
	}else if(formDriverOptico.tipo.value==""){
		alert("Erro! O Campo \\"Tipo\\" esta em branco!");
		formDriverOptico.tipo.focus();
		return false;
	}else if(formDriverOptico.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formDriverOptico.testado.focus();
		return false;
	}else if(formDriverOptico.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formDriverOptico.origem.focus();
		return false;
	}

	formDriverOptico.submit();
	}    

	</script>

	<h2>Cadastro de Pe&ccedil;as - Drive &Oacute;ptico</h2>
	<form name="formDriverOptico" action="http://localhost/cgi-bin/cadastrarPeca.pl" method="post">
		<input type="hidden" name="codigobarras" value="$_[0]">
		<input type="hidden" name="acao" value="DriverOpticoinsert">
		&nbsp;&nbsp;Fabricante:&nbsp;
		<select name="fabricante" size="1">);
		for(@DriverOpticofabricantes){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />
		&nbsp;&nbsp;Velocidade:&nbsp;
		<input type="text" name="velocidade" maxlength="9" size="10"/>&nbsp;X<br /><br />
		&nbsp;&nbsp;Tipo:&nbsp;
		<select name="tipo" size="1">
		);
		for(@DriverOpticotipos){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />
		&nbsp;&nbsp;Testado:&nbsp;
		<select name="testado" size="1">
			<option value="nenhum" selected="selected"> </option>
			<option value="sim"> Sim </option>
			<option value="nao"> N&atilde;o </option>
		</select><br /><br />
		&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
		<select name="origem" size="1">);
		for(@Pecasorigem){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />&nbsp;
		<input type="button" value="Salvar" onClick="verifica();"/>
		<input type="button" value="Cancelar" onclick="history.go(-1)">
	
	</form>
	);
	Fachada->printFooter;

}

sub printformFonte{
	
	my @Fontefabricantes = ("");
	open(FILE, "<listas/Fontefabricantes.txt");
	while(<FILE>){
		push(@Fontefabricantes, $_);
	}
	close(FILE);

	my @Fontetipos = ("");
	open(FILE, "<listas/Fontetipos.txt");
	while(<FILE>){
		push(@Fontetipos, $_);
	}
	close(FILE);

	my @Fonteconectores = ("");
	open(FILE, "<listas/Fonteconectores.txt");
	while(<FILE>){
		push(@Fonteconectores, $_);
	}
	close(FILE);

	my @Fonteqtdpinos = ("");
	open(FILE, "<listas/Fonteqtdpinos.txt");
	while(<FILE>){
		push(@Fonteqtdpinos, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	
	if(formFonte.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formFonte.fabricante.focus();
		return false;
	}else if(formFonte.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formFonte.testado.focus();
		return false;
	}else if(formFonte.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formFonte.origem.focus();
		return false;
	}

	formFonte.submit();
	}    

	</script>

	<form name="formFonte" action="cadastrarPeca.pl" method="post">
	<input type="hidden" name="codigobarras" value="$_[0]">
	<input type="hidden" name="acao" value="Fonteinsert">

	<h2>Cadastro de Pe&ccedil;as - Fonte</h2>

	&nbsp;&nbsp;Fabricante:&nbsp;
	<select name="fabricante">
	);
	for(@Fontefabricantes){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Pot&ecirc;ncia:&nbsp;
	<input type="text" name="potencia" maxlength="9" size="10" />&nbsp;W <br /><br />

	&nbsp;&nbsp;Tipo:&nbsp;
	<select name="tipo">
	);
	for(@Fontetipos){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Conector:&nbsp;
	<select name="conector">
	);
	for(@Fonteconectores){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Quantidade de Pinos:&nbsp;
	<select name="qtdpinos" size="1">
	);
	for(@Fonteqtdpinos){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Testado:&nbsp;
	<select name="testado">
		<option value=""></option>
		<option value="0">N&atilde;o</option>
		<option value="1">Sim</option>
	</select><br /><br />

	&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
	<select name="origem">
	);
	for(@Pecasorigem){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	<input type="button" value="Salvar" onClick="verifica();" />
	<input type="button" value="Voltar" onclick="window.location.href='cadastrarPeca.pl'">

	</form>
	);
	Fachada->printFooter;
}

sub printformPlacaMae{

	my @PlacaMaefabricantes = ("");
	open(FILE, "<listas/PlacaMaefabricantes.txt");
	while(<FILE>){
		push(@PlacaMaefabricantes, $_);
	}
	close(FILE);

	my @PlacaMaemodelos = ("");
	open(FILE, "<listas/PlacaMaemodelos.txt");
	while(<FILE>){
		push(@PlacaMaemodelos, $_);
	}
	close(FILE);

	my @PlacaMaesockets = ("");
	open(FILE, "<listas/PlacaMaesockets.txt");
	while(<FILE>){
		push(@PlacaMaesockets, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formPlacaMae.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formPlacaMae.fabricante.focus();
		return false;
	}else if(formPlacaMae.qtdslotsmemoria.value==""){
		alert("Erro! O Campo \\"Socket\\" esta em branco!");
		formPlacaMae.qtdslotsmemoria.focus();
		return false;
	}else if(formPlacaMae.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formPlacaMae.testado.focus();
		return false;
	}else if(formPlacaMae.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formPlacaMae.origem.focus();
		return false;
	}

	formPlacaMae.submit();
	}    

	</script>
	
	<h2>Cadastro de Pe&ccedil;as - Placa-m&atilde;e</h2>
	<form name="formPlacaMae" action="cadastrarPeca.pl" method="post">
		<input type="hidden" name="codigobarras" value="$_[0]">
		<input type="hidden" name="acao" value="PlacaMaeinsert">
		&nbsp;&nbsp;Fabricante:&nbsp;
		<select name="fabricante" size="1">
		);
		for(@PlacaMaefabricantes){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />
		&nbsp;&nbsp;Modelo:&nbsp;
		<select name="modelo" size="1">
		);
		for(@PlacaMaemodelos){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />
		&nbsp;&nbsp;Socket:&nbsp;
		<select name="socket" size="1">
		);
		for(@PlacaMaesockets){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />
		&nbsp;&nbsp;Quantidade de Slots de Mem&oacute;ria:&nbsp;
		<input type="text" name="qtdslotsmemoria" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Som On-board:&nbsp;
		<select name="somonboard" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
		</select><br /><br />
		&nbsp;&nbsp;Quantidade de Portas USB:&nbsp;
		<input type="text" name="portausb" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Quantidade de Interfaces SCSI:&nbsp;
		<input type="text" name="interfscsi" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Quantidade de Interfaces SATA:&nbsp;
		<input type="text" name="interfsata" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Quantidade de Interfaces IDE:&nbsp;
		<input type="text" name="interfide" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Quantidade de Barramentos AGP:&nbsp;
		<input type="text" name="baragp" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Quantidade de Barramentos ISA:&nbsp;
		<input type="text" name="barisa" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Quantidade de Barramentos PCI:&nbsp;
		<input type="text" name="barpci" maxlength="2" size="10"/><br /><br />
		&nbsp;&nbsp;Testado:&nbsp;
		<select name="testado" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
		</select><br /><br />
		&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
		<select name="origem">
		);
		for(@Pecasorigem){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />&nbsp;

		<input type="button" value="Salvar" onClick="verifica();"/>
		<input type="button" value="Cancelar" onclick="history.go(-1)">

	</form>
	);
	Fachada->printFooter;
	
}

sub printformPlacaVideo{

	my @PlacaVideofabricantes = ("");
	open(FILE, "<listas/PlacaVideofabricantes.txt");
	while(<FILE>){
		push(@PlacaVideofabricantes, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formPlacaVideo.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formPlacaVideo.fabricante.focus();
		return false;
	}else if(formPlacaVideo.acel3d.value==""){
		alert("Erro! O Campo \\"Aceleradora 3D\\" esta em branco!");
		formPlacaVideo.acel3d.focus();
		return false;
	}else if(formPlacaVideo.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formPlacaVideo.testado.focus();
		return false;
	}else if(formPlacaVideo.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formPlacaVideo.origem.focus();
		return false;
	}

	formPlacaVideo.submit();
	}    

	</script>

	<h2>Cadastro de Pe&ccedil;as - Placa de V&iacute;deo</h2>
	<form name="formPlacaVideo" action="cadastrarPeca.pl" method="post">
		<input type="hidden" name="codigobarras" value="$_[0]">
		<input type="hidden" name="acao" value="PlacaVideoinsert">
		&nbsp;&nbsp;Fabricante:&nbsp;
		<select name="fabricante" size="1">
		);
		for(@PlacaVideofabricantes){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />
		&nbsp;&nbsp;Mem&oacute;ria:&nbsp;
		<input type="text" name="memoria" maxlength="9" size="10"/>&nbsp;MBytes<br /><br />
		&nbsp;&nbsp;Processador:&nbsp;
		<input type="text" name="processador" maxlength="9" size="10"/>&nbsp;MHz<br /><br />
		&nbsp;&nbsp;Aceleradora 3D:&nbsp;
		<select name="acel3d" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
		</select><br /><br />
		&nbsp;&nbsp;Testado:&nbsp;
		<select name="testado" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
		</select><br /><br />
		&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
		<select name="origem" size="1">
		);
		for(@Pecasorigem){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		</select><br /><br />&nbsp;

		<input type="button" value="Salvar" onClick="verifica();"/>
		<input type="button" value="Cancelar" onclick="history.go(-1)">

	</form>
	);
	Fachada->printFooter;

}

sub printformProcessador{
	
	my @Processadorfabricantes = ("");
	open(FILE, "<listas/Processadorfabricantes.txt");
	while(<FILE>){
		push(@Processadorfabricantes, $_);
	}
	close(FILE);

	my @Processadortipos = ("");
	open(FILE, "<listas/Processadortipos.txt");
	while(<FILE>){
		push(@Processadortipos, $_);
	}
	close(FILE);

	my @Processadorsockets = ("");
	open(FILE, "<listas/Processadorsockets.txt");
	while(<FILE>){
		push(@Processadorsockets, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formProcessador.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formProcessador.fabricante.focus();
		return false;
	}else if(formProcessador.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formProcessador.testado.focus();
		return false;
	}else if(formProcessador.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formProcessador.origem.focus();
		return false;
	}

	formProcessador.submit();
	}    

	</script>

	<h2>Cadastro de Pe&ccedil;as - Processador</h2>
	<form name="formProcessador" action="cadastrarPeca.pl" method="post">
		<input type="hidden" name="codigobarras" value="$_[0]">
		<input type="hidden" name="acao" value="Processadorinsert">
		&nbsp;&nbsp;Fabricante:&nbsp;
		<select name="fabricante" size="1">
		);
		for(@Processadorfabricantes){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
	    	</select><br /><br />
		&nbsp;&nbsp;Tipo:&nbsp;
		<select name="tipo" size="1">
		);
		for(@Processadortipos){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />
		&nbsp;&nbsp;Velocidade:&nbsp;
		<input type="text" name="velocidade" maxlength="9" size="10"/>&nbsp;MHz<br /><br />
		&nbsp;&nbsp;Socket:&nbsp;
		<select name="socket" size="1">
		);
		for(@Processadorsockets){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />
		&nbsp;&nbsp;Testado:&nbsp;
		<select name="testado" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
		</select><br /><br />
		&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
		<select name="origem" size="1">
		);
		for(@Pecasorigem){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />&nbsp;
		
		<input type="button" value="Salvar" onClick="verifica();"/>
		<input type="button" value="Cancelar" onclick="history.go(-1)">

	</form>
	);
	Fachada->printFooter;

}

sub printformMemoria{

	my @Memoriafabricantes = ("");
	open(FILE, "<listas/Memoriafabricantes.txt");
	while(<FILE>){
		push(@Memoriafabricantes, $_);
	}
	close(FILE);

	my @Memoriatipos = ("");
	open(FILE, "<listas/Memoriatipos.txt");
	while(<FILE>){
		push(@Memoriatipos, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	if(formMemoria.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formMemoria.fabricante.focus();
		return false;
	}else if(formMemoria.tipo.value==""){
		alert("Erro! O Campo \\"Tipo\\" esta em branco!");
		formMemoria.tipo.focus();
		return false;
	}else if(formMemoria.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formMemoria.testado.focus();
		return false;
	}else if(formMemoria.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formMemoria.origem.focus();
		return false;
	}

	formMemoria.submit();
	}    

	</script>

	<h2>Cadastro de Pe&ccedil;as - Mem&oacute;ria</h2>
	<form name="formMemoria" action="cadastrarPeca.pl" method="post">
		<input type="hidden" name="codigobarras" value="$_[0]">
		<input type="hidden" name="acao" value="Memoriainsert">
		&nbsp;&nbsp;Fabricante:&nbsp;
		<select name="fabricante" size="1">
		);
		for(@Memoriafabricantes){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />
		&nbsp;&nbsp;Tamanho:&nbsp;
		<input type="text" name="tamanho" maxlength="9" size="10"/>&nbsp;MBytes<br /><br />
		&nbsp;&nbsp;Tipo:&nbsp;
		<select name="tipo" size="1">
		);
		for(@Memoriatipos){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />
		&nbsp;&nbsp;Testado:&nbsp;
		<select name="testado" size="1">
			<option value=""></option>
			<option value="0">N&atilde;o</option>
			<option value="1">Sim</option>
	    	</select><br /><br />
		&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
		<select name="origem" size="1">
		);
		for(@Pecasorigem){
			print qq(<option value="$_">$_</option>);
		}
		print qq(
		    </select><br /><br />&nbsp;

		<input type="button" value="Salvar" onClick="verifica();"/>
		<input type="button" value="Cancelar" onclick="history.go(-1)">

	</form>
	);
	Fachada->printFooter;

}

sub printformPlacaRede{

	my @PlacaRedefabricantes = ("");
	open(FILE, "<listas/PlacaRedefabricantes.txt");
	while(<FILE>){
		push(@PlacaRedefabricantes, $_);
	}
	close(FILE);

	my @PlacaRedemodelos = ("");
	open(FILE, "<listas/PlacaRedemodelos.txt");
	while(<FILE>){
		push(@PlacaRedemodelos, $_);
	}
	close(FILE);

	my @PlacaRedetaxatransmissao = ("");
	open(FILE, "<listas/PlacaRedetaxatransmissao.txt");
	while(<FILE>){
		push(@PlacaRedetaxatransmissao, $_);
	}
	close(FILE);

	Fachada->printHeader;
	Fachada->printMenu($nivel);
	print qq(
	<script language="JavaScript">
	function verifica() {
	
	if(formPlacaRede.fabricante.value==""){
		alert("Erro! O Campo \\"Fabricante\\" esta em branco!");
		formPlacaRede.fabricante.focus();
		return false;
	}else if(formPlacaRede.testado.value==""){
		alert("Erro! O Campo \\"Testado\\" esta em branco!");
		formPlacaRede.testado.focus();
		return false;
	}else if(formPlacaRede.origem.value==""){
		alert("Erro! O Campo \\"Origem\\" esta em branco!");
		formPlacaRede.origem.focus();
		return false;
	}

	formPlacaRede.submit();
	}    

	</script>

	<form name="formPlacaRede" action="cadastrarPeca.pl" method="post">
	<input type="hidden" name="codigobarras" value="$_[0]">
	<input type="hidden" name="acao" value="PlacaRedeinsert">

	<h2>Cadastro de Pe&ccedil;as - Placa de Rede</h2>

	&nbsp;&nbsp;Fabricante:&nbsp;
	<select name="fabricante">
	);
	for(@PlacaRedefabricantes){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Modelo:&nbsp;
	<select name="modelo">
	);
	for(@PlacaRedemodelos){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />
	
	&nbsp;&nbsp;Taxa de Transmiss&atilde;o:&nbsp;
	<select name="taxatransmissao" size="1">
	);
	for(@PlacaRedetaxatransmissao){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	&nbsp;&nbsp;Testado:&nbsp;
	<select name="testado">
		<option value=""></option>
		<option value="0">N&atilde;o</option>
		<option value="1">Sim</option>
	</select><br /><br />

	&nbsp;&nbsp;Origem da Doa&ccedil;&atilde;o:&nbsp;
	<select name="origem">
	);
	for(@Pecasorigem){
		print qq(<option value="$_">$_</option>);
	}
	print qq(
	</select><br /><br />

	<input type="button" value="Salvar" onClick="verifica();" />
	<input type="button" value="Voltar" onclick="window.location.href='cadastrarPeca.pl'">

	</form>
	);

	Fachada->printFooter;
}

sub insertHD{

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		
		# EXECUTE THE QUERY
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

			Fachada->printHeader;
			Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir o HD:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir o HD:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Tamanho: $_[4]</li>);
				print qq(<li>Tipo: $_[5]</li>);
				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);			
			}
			Fachada->printFooter;				
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO HD VALUES ('$_[0]', '$_[4]', '$_[5]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou o HD:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Tamanho: $_[4]</li>);
		print qq(<li>Tipo: $_[5]</li>);
		print qq(</ul>);
		Fachada->printFooter;

}

sub insertDisquete {

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);

			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir o Disquete:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir o Disquete:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada-printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO Disquete VALUES ('$_[0]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou o Disquete:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(</ul>);
		Fachada->printFooter;

}

sub insertDriverOptico{

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir o Driver &Oacute;ptico:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir o Driver &Oacute;ptico:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Velocidade: $_[4]</li>);
				print qq(<li>Tipo: $_[5]</li>);


				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO DriverOptico VALUES ('$_[0]', '$_[4]', '$_[5]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou o Driver &Oacute;ptico:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Velocidade: $_[4]</li>);
		print qq(<li>Tipo: $_[5]</li>);
		print qq(</ul>);
		Fachada->printFooter;

}

sub insertFonte {

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Fonte:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Fonte:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Pot&ecirc;ncia: $_[4]</li>);
				print qq(<li>Tipo: $_[5]</li>);
				print qq(<li>Conector: $_[6]</li>);
				print qq(<li>Quantidade de Pinos: $_[7]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO Fonte VALUES ('$_[0]', '$_[4]', '$_[5]', '$_[6]', '$_[7]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou a Fonte:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Pot&ecirc;ncia: $_[4]</li>);
		print qq(<li>Tipo: $_[5]</li>);
		print qq(<li>Conector: $_[6]</li>);
		print qq(<li>Quantidade de Pinos: $_[7]</li>);
		print qq(</ul>);
		Fachada->printFooter;
}


sub insertMemoria {

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Mem&oacute;ria:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Mem&oacute;ria:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Tipo: $_[4]</li>);
				print qq(<li>Tamanho: $_[5]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO Memoria VALUES ('$_[0]', '$_[4]', '$_[5]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou a Mem&oacute;ria:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Tipo: $_[4]</li>);
		print qq(<li>Tamanho: $_[5]</li>);
		print qq(</ul>);
		Fachada->printFooter;
}

sub insertPlacaMae {

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Placa M&atilde;e:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Placa M&atilde;e:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Modelo: $_[4]</li>);
				print qq(<li>Socket: $_[5]</li>);
				print qq(<li>Quantidade de Slots de Mem&oacute;ria: $_[6]</li>);
				print qq(<li>Som On Board: );
				if($_[7] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Quantidade de portas USB: $_[8]</li>);
				print qq(<li>Quantidade de interfaces SCSI: $_[9]</li>);
				print qq(<li>Quantidade de interfaces SATA: $_[10]</li>);
				print qq(<li>Quantidade de interfaces IDE: $_[11]</li>);
				print qq(<li>Quantidade de barramentos AGP: $_[12]</li>);
				print qq(<li>Quantidade de barramentos ISA: $_[13]</li>);
				print qq(<li>Quantidade de barramentos PCI: $_[14]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO PlacaMae VALUES ('$_[0]', '$_[4]', '$_[5]', '$_[6]', '$_[7]', '$_[8]', '$_[9]', '$_[10]', '$_[11]', '$_[12]', 
		'$_[13]', '$_[14]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou a Placa M&atilde;e:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Modelo: $_[4]</li>);
		print qq(<li>Socket: $_[5]</li>);
		print qq(<li>Quantidade de Slots de Mem&oacute;ria: $_[6]</li>);
		print qq(<li>Som On Board: );
		if($_[7] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Quantidade de portas USB: $_[8]</li>);
		print qq(<li>Quantidade de interfaces SCSI: $_[9]</li>);
		print qq(<li>Quantidade de interfaces SATA: $_[10]</li>);
		print qq(<li>Quantidade de interfaces IDE: $_[11]</li>);
		print qq(<li>Quantidade de barramentos AGP: $_[12]</li>);
		print qq(<li>Quantidade de barramentos ISA: $_[13]</li>);
		print qq(<li>Quantidade de barramentos PCI: $_[14]</li>);
		print qq(</ul>);
		Fachada->printFooter;
}

sub insertProcessador {

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir o Processador:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir o Processador:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Tipo: $_[4]</li>);
				print qq(<li>Velocidade: $_[5]</li>);
				print qq(<li>Socket: $_[6]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO Processador VALUES ('$_[0]', '$_[4]', '$_[5]', '$_[6]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou o Processador:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Tipo: $_[4]</li>);
		print qq(<li>Velocidade: $_[5]</li>);
		print qq(<li>Socket: $_[6]</li>);
		print qq(</ul>);
		Fachada->printFooter;
}

sub insertPlacaRede {

		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);

			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Placa de Rede:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Placa de Rede:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Modelo: $_[4]</li>);
				print qq(<li>Taxa de Trasmiss&atilde;o: $_[5]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO PlacaRede VALUES ('$_[0]', '$_[4]', '$_[5]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou a Placa de Rede:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Modelo: $_[4]</li>);
		print qq(<li>Taxa de Trasmiss&atilde;o: $_[5]</li>);
		print qq(</ul>);
		Fachada->printFooter;
}

sub insertPlacaVideo {
		
		#PEGANDO A DATA DO SISTEMA
		$query = "SELECT now()";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();

		# PREPARE THE QUERY
		$query = "
		INSERT INTO Pecas VALUES ('$_[0]', '$_[1]', '$_[2]', '$_[3]', '$dataRegistro', null);";

		$query_handle = $bd->query($query);
		$errostring = $query_handle->errstr;
		$errocode = $query_handle->err;

		#PEGANDO A DATA DO SISTEMA FORMATADA
		$query = "SELECT DATE_FORMAT(now(), '%d/%m/%Y %H:%i:%S')";
		$query_handle = $bd->query($query);
		$query_handle->bind_columns(undef, \$dataRegistro);
		$query_handle->fetch();
		
		if($errocode){

		Fachada->printHeader;
		Fachada->printMenu($nivel);
			
			if($errocode == 1062){
				print qq(<h1><font color="#FF0000">ERRO ao inserir a Placa de V&iacute;deo:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);

				print qq(
				</ul>
				<h3><font color="#FF0000">C&oacute;digo de Barras de pe&ccedil;a j&aacute; cadastrado.</font></h3>
				);
			}else{
				print qq(<h1><font color="#FF0000">ERRO ao inserir Placa de V&iacute;deo:</font></h1>
				<ul>
				);

				print qq(<li>Codigo de Barras: $_[0]</li>);
				print qq(<li>Testado: );
				if($_[1] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}
				print qq(<li>Fabricante: $_[2]</li>);
				print qq(<li>Origem: $_[3]</li>);
				print qq(<li>Data de Registro: $dataRegistro</li>);
				print qq(<li>Mem&oacute;ria: $_[4]</li>);
				print qq(<li>Processador: $_[5]</li>);
				print qq(<li>Aceleradora 3D: );
				if($_[6] == 0){
					print qq(N&atilde;o</li>);				
				}else{
					print qq(Sim</li>);
				}

				print qq(
				</ul>
				<h3><font color="#FF0000">Causa n&atilde;o identificada.</font></h3>
				);
			}				
			Fachada->printFooter;
			exit;		
		}
		# PREPARE THE QUERY
		$query = "
		INSERT INTO PlacaVideo VALUES ('$_[0]', '$_[4]', '$_[5]', '$_[6]');";

		$query_handle = $bd->query($query);
		
		Fachada->printHeader;
		Fachada->printMenu($nivel);

		print qq(<h1>Voc&ecirc; cadastrou a Placa de V&iacute;deo:</h1>);
		print qq(<ul><li>Codigo de Barras: $_[0]</li>);
		print qq(<li>Testado: );
		if($_[1] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(<li>Fabricante: $_[2]</li>);
		print qq(<li>Origem: $_[3]</li>);
		print qq(<li>Data de Registro: $dataRegistro</li>);
		print qq(<li>Mem&oacute;ria: $_[4]</li>);
		print qq(<li>Processador: $_[5]</li>);
		print qq(<li>Aceleradora 3D: );
		if($_[6] == 0){
			print qq(N&atilde;o</li>);				
		}else{
			print qq(Sim</li>);
		}
		print qq(</ul>);
		Fachada->printFooter;
}

